#include <iostream>
#include <string>

using namespace std;
void fun_swap_1(int val_1, int val_2)
{
	int temp = val_1;
	val_1 = val_2;
	val_2 = temp;
}
void fun_swap_2(int *val_1, int *val_2)
{
	int temp = *val_1;
	*val_1 = *val_2;
	*val_2 = temp;
}
void fun_swap_3(int val_1, int val_2)
{
	int temp = val_1;
	val_1 = val_2;
	val_2 = temp;
}
int main(int argc, char const *argv[])
{

	int val_1 = 415;
	int val_2 = 526;
	// 原始值
	printf("原始值为:val_1=%d,val_2=%d\n", val_1, val_2);

	// 值传递
	fun_swap_1(val_1, val_2);
	printf("值传递:  val_1=%d,val_2=%d\n", val_1, val_2);
	// 指针传
	fun_swap_2(&val_1, &val_2);
	printf("指针传递:val_1=%d,val_2=%d\n", val_1, val_2);
	// 引用传递
	fun_swap_3(val_1, val_2);
	printf("引用传递:val_1=%d,val_2=%d\n", val_1, val_2);
	return 0;
}
